package com.diqye.db;


import java.util.ArrayList;
import java.util.List;

import com.diqye.db.exception.XAssert;

/**
 * tableinfo
 *
 * @author 秦振龙
 * @date 2013-11-25
 *
 * <b>修改记录及说明：</b>
 * <ul>
 * <li>2013-11-25  秦振龙  创建</li>
 * </ul>
 */
public abstract class Tinfo {
	protected List<String> fields = new ArrayList<String>();
	protected List<String> primary = new ArrayList<String>();
	public Tinfo(){
		init();
	}
	public  String getTablename(){
		return this.getClass().getSimpleName();
	}
	
	public final List<String> getFields(){
		return fields;
	}
	
	public final List<String> getPrimaryKey(){
		XAssert.asert(primary.size()>0, "表{0}中主键不能为null", getTablename());
		return primary;
	}
	
	public void addField(String field){
		if(primary.contains(field)){
			return;
		}
		fields.add(field);
	}
	/**
	 * 初始化主键  也可以根据需要初始化表中其他字段
	 *
	 */
	public abstract void init();
}
